#define _CRT_SECURE_NO_WARNINGS

//#include<iostream>
//#include <string> 
//#include <vector>
//#include <algorithm>
//using namespace std;
//string FindMax(const string& s)
//{
//    string s1;
//    string s2;
//    if (s.find("joker JOKER") != string::npos)
//        return "joker JOKER";
//    int dath = s.find('-');
//    s1 = s.substr(0, dath);
//    s2 = s.substr(dath + 1);
//    int num1 = count(s1.begin(), s1.end(), ' ') + 1;
//    int num2 = count(s2.begin(), s2.end(), ' ') + 1;
//    string s1_first = s1.substr(0, s1.find(' '));
//    string s2_first = s2.substr(0, s2.find(' '));
//    if (num1 == num2)
//    {
//        string tmp = "345678910JQKA2jokerJOKER";
//        if (tmp.find(s1_first) > tmp.find(s2_first))
//            return s1;
//        else return s2;
//    }
//    if (num1 == 4) return s1;
//    else if (num2 == 4) return s2;
//
//    return "ERROR";
//}
//int main()
//{
//    string s, ans;
//    while (getline(cin, s))
//    {
//        ans = FindMax(s);
//        cout << ans << endl;
//    }
//    return 0;
//
//}
//#include <iostream>
//using namespace std;
//class A
//{
//public:
//
//	A()
//	{
//		fun();
//	}
//	virtual void fun()
//	{
//		cout << "A" << endl;
//	}
//};
//class B :public A
//{
//public:
//	B()
//	{
//		fun();
//	}
//	virtual void fun()
//	{
//		cout << "B" << endl;
//	}
//};
//int main()
//{
//	A* a = new B();
//	a->fun();
//	return 0;
//}